package com.candoit.webapps.pricing.controllers;

import java.util.ArrayList;
import java.util.List;


import com.candoit.webapps.pricing.bean.adapters.MyTipoLineaConverter;
import com.candoit.webapps.pricing.model.TipoLinea;
import com.candoit.webapps.pricing.model.opcional.Opcional;
import com.candoit.webapps.pricing.util.QueryUtil;

public abstract class ABMOpcionalesController extends AbstractController {
	
	/*TODO: persistir en algun lado*/
	protected Double margenUtilidad = 0.2;
	
	protected MyTipoLineaConverter tipoLineaConverter;
	protected List<TipoLinea> tipoProductivoLista;

	public ABMOpcionalesController(){
		iniciarTipoProductivoLinea();
	}
	
	public abstract <T extends Opcional> List<T> getOpcionales();

	
	public abstract void guardarOpcionales();
	
	public <T extends Opcional> void destroy(T opcional){
		this.remove(opcional);
	}

	private void iniciarTipoProductivoLinea(){
		tipoLineaConverter = new MyTipoLineaConverter();
		tipoProductivoLista = new ArrayList<TipoLinea>();
		TipoLinea industrial = QueryUtil.getInstance().getTipoLineaById(TipoLinea.INDUSTRIAL);
		TipoLinea artesanal = QueryUtil.getInstance().getTipoLineaById(TipoLinea.ARTESANAL);
		tipoProductivoLista.add(industrial);
		tipoProductivoLista.add(artesanal);
	}
	public List<TipoLinea> getTipoProductivoLista() {
		return tipoProductivoLista;
	}
	
	public MyTipoLineaConverter getTipoLineaConverter() {
		return tipoLineaConverter;
	}
}
